
        <!doctype html>
        <html lang="zh-CN">
        <head>
            <meta charset="utf-8">
        </head>
        <body>
            <div class="blog-content-box">
<div class="article-header-box">
<div class="article-header">
<div class="article-title-box">
<h1 class="title-article" id="articleContentId">操作系统：Linux 环境变量配置的 6 种方法</h1>
</div>

</div>
</div>
<div id="blogHuaweiyunAdvert"></div>
<div id="blogColumnPayAdvert">
<div class="column-group">


</div>
</div>
<div class="learning_the_member_box">
<a href="https://www.csdn.net/vip?utm_source=bkzl_cjhy_ckqy" target="_blank">
<div class="left"><img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/iconVIpCrown.png"/><span>您已是超级会员，正在免费阅读会员专享内容</span></div>
<div class="right"><span>查看更多超级会员权益</span><img alt="" src="https://csdnimg.cn/release/blogv2/dist/components/img/vipIconArrowLeftWhite.png"/></div>
</a>
</div>
<article class="baidu_pl">
<div class="article_content clearfix" id="article_content">
<link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css" rel="stylesheet"/>
<link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-704d5b9767.css" rel="stylesheet"/>
<div class="htmledit_views" id="content_views">
<div id="js_content">
<p id="main-toc"><strong>目录</strong></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE-toc" style="margin-left:40px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE" rel="nofollow">Linux环境变量配置</a></p>
<p id="Linux%E8%AF%BB%E5%8F%96%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F-toc" style="margin-left:80px;"><a href="#Linux%E8%AF%BB%E5%8F%96%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F" rel="nofollow">Linux读取环境变量</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%B8%80%EF%BC%9Aexport%20PATH-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%B8%80%EF%BC%9Aexport%20PATH" rel="nofollow">Linux环境变量配置方法一：export PATH</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%BA%8C%EF%BC%9Avim%20~%2F.bashrc-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%BA%8C%EF%BC%9Avim%20~%2F.bashrc" rel="nofollow">Linux环境变量配置方法二：vim ~/.bashrc</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%B8%89%EF%BC%9Avim%20~%2F.bash_profile-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%B8%89%EF%BC%9Avim%20~%2F.bash_profile" rel="nofollow">Linux环境变量配置方法三：vim ~/.bash_profile</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%9B%9B%EF%BC%9Avim%20%2Fetc%2Fbashrc-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%9B%9B%EF%BC%9Avim%20%2Fetc%2Fbashrc" rel="nofollow">Linux环境变量配置方法四：vim /etc/bashrc</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9Avim%20%2Fetc%2Fprofile-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9Avim%20%2Fetc%2Fprofile" rel="nofollow">Linux环境变量配置方法五：vim /etc/profile</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%85%AD%EF%BC%9Avim%20%2Fetc%2Fenvironment-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%85%AD%EF%BC%9Avim%20%2Fetc%2Fenvironment" rel="nofollow">Linux环境变量配置方法六：vim /etc/environment</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%A0%E8%BD%BD%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90-toc" style="margin-left:40px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%A0%E8%BD%BD%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90" rel="nofollow">Linux环境变量加载原理解析</a></p>
<p id="%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E7%9A%84%E5%88%86%E7%B1%BB-toc" style="margin-left:80px;"><a href="#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E7%9A%84%E5%88%86%E7%B1%BB" rel="nofollow">环境变量的分类</a></p>
<p id="%E6%B5%8B%E8%AF%95Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%A0%E8%BD%BD%E9%A1%BA%E5%BA%8F%E7%9A%84%E6%96%B9%E6%B3%95-toc" style="margin-left:80px;"><a href="#%E6%B5%8B%E8%AF%95Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%A0%E8%BD%BD%E9%A1%BA%E5%BA%8F%E7%9A%84%E6%96%B9%E6%B3%95" rel="nofollow">测试Linux环境变量加载顺序的方法</a></p>
<p id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD%E8%AF%A6%E8%A7%A3-toc" style="margin-left:80px;"><a href="#Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD%E8%AF%A6%E8%A7%A3" rel="nofollow">Linux环境变量文件加载详解</a></p>
<p id="%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%8A%80%E5%B7%A7-toc" style="margin-left:80px;"><a href="#%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%8A%80%E5%B7%A7" rel="nofollow">一些小技巧</a></p>
<hr id="hr-toc"/>
<p></p>
<p style="text-align:center;"><img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/0b188faa250a610b3db7d42b62450025.jpeg"/></p>
<h3 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE">Linux环境变量配置</h3>
<p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb50e470dc276d6676c923b597cbd28cf29e7a31393f1f03afedaf22f6aaf9e0e5517b9bdb32&amp;idx=3&amp;mid=2247524678&amp;scene=21&amp;sn=a153fd4fae16c357d55414e067d7bf25#wechat_redirect" rel="nofollow" title="在自定义安装软件的时候，经常需要配置环境变量，下面列举出各种对环境变量的配置方法。">在自定义安装软件的时候，经常需要配置环境变量，下面列举出各种对环境变量的配置方法。</a></p>
<p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb50e470dc276d6676c923b597cbd28cf29e7a31393f1f03afedaf22f6aaf9e0e5517b9bdb32&amp;idx=3&amp;mid=2247524678&amp;scene=21&amp;sn=a153fd4fae16c357d55414e067d7bf25#wechat_redirect" rel="nofollow" title="下面所有例子的环境说明如下：">下面所有例子的环境说明如下：</a></p>
<ul><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb50e470dc276d6676c923b597cbd28cf29e7a31393f1f03afedaf22f6aaf9e0e5517b9bdb32&amp;idx=3&amp;mid=2247524678&amp;scene=21&amp;sn=a153fd4fae16c357d55414e067d7bf25#wechat_redirect" rel="nofollow" title="系统：Ubuntu 14.0">系统：Ubuntu 14.0</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb50e470dc276d6676c923b597cbd28cf29e7a31393f1f03afedaf22f6aaf9e0e5517b9bdb32&amp;idx=3&amp;mid=2247524678&amp;scene=21&amp;sn=a153fd4fae16c357d55414e067d7bf25#wechat_redirect" rel="nofollow" title="用户名：uusama">用户名：uusama</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb50e470dc276d6676c923b597cbd28cf29e7a31393f1f03afedaf22f6aaf9e0e5517b9bdb32&amp;idx=3&amp;mid=2247524678&amp;scene=21&amp;sn=a153fd4fae16c357d55414e067d7bf25#wechat_redirect" rel="nofollow" title="需要配置MySQL环境变量路径：/home/uusama/mysql/bin">需要配置MySQL环境变量路径：/home/uusama/mysql/bin</a></p> </li></ul>
<h4 id="Linux%E8%AF%BB%E5%8F%96%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F">Linux读取环境变量</h4>
<p>读取环境变量的方法：</p>
<ul><li> <p><code>export</code>命令显示当前系统定义的所有环境变量</p> </li><li> <p><code>echo $PATH</code>命令输出当前的<code>PATH</code>环境变量的值</p> </li></ul>
<p>这两个命令执行的效果如下</p>
<pre class="has"><code class="language-go">uusama@ubuntu:~export
declare -x HOME="/home/uusama"
declare -x LANG="en_US.UTF-8"
declare -x LANGUAGE="en_US:"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="uusama"
declare -x MAIL="/var/mail/uusama"
declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="uusama"

uusama@ubuntu:~ echo $PATH
/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
</code></pre>
<p>其中<code>PATH</code>变量定义了运行命令的查找路径，以冒号<code>:</code>分割不同的路径，使用<code>export</code>定义的时候可加双引号也可不加。</p>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%B8%80%EF%BC%9Aexport%20PATH">Linux环境变量配置方法一：<code>export PATH</code></h4>
<p>使用<code>export</code>命令直接修改<code>PATH</code>的值，配置MySQL进入环境变量的方法:</p>
<pre class="has"><code class="language-go">export PATH=$PATH:/home/uusama/mysql/bin
</code></pre>
<p>注意事项：</p>
<ul><li> <p>生效时间：立即生效</p> </li><li> <p>生效期限：当前终端有效，窗口关闭后无效</p> </li><li> <p>生效范围：仅对当前用户有效</p> </li><li> <p>配置的环境变量中不要忘了加上原来的配置，即<code>$PATH</code>部分，避免覆盖原来配置</p> </li></ul>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%BA%8C%EF%BC%9Avim%20~%2F.bashrc">Linux环境变量配置方法二：<code>vim ~/.bashrc</code></h4>
<p>通过修改用户目录下的<code>~/.bashrc</code>文件进行配置：</p>
<pre class="has"><code class="language-go">vim ~/.bashrc

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
</code></pre>
<p>注意事项：</p>
<ul><li> <p>生效时间：使用相同的用户打开新的终端时生效，或者手动<code>source ~/.bashrc</code>生效</p> </li><li> <p>生效期限：永久有效</p> </li><li> <p>生效范围：仅对当前用户有效</p> </li><li> <p>如果有后续的环境变量加载文件覆盖了<code>PATH</code>定义，则可能不生效</p> </li></ul>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%B8%89%EF%BC%9Avim%20~%2F.bash_profile">Linux环境变量配置方法三：<code>vim ~/.bash_profile</code></h4>
<p>和修改<code>~/.bashrc</code>文件类似，也是要在文件最后加上新的路径即可：</p>
<pre class="has"><code class="language-go">vim ~/.bash_profile

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
</code></pre>
<p>注意事项：</p>
<ul><li> <p>生效时间：使用相同的用户打开新的终端时生效，或者手动<code>source ~/.bash_profile</code>生效</p> </li><li> <p>生效期限：永久有效</p> </li><li> <p>生效范围：仅对当前用户有效</p> </li><li> <p>如果没有<code>~/.bash_profile</code>文件，则可以编辑<code>~/.profile</code>文件或者新建一个</p> </li></ul>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%9B%9B%EF%BC%9Avim%20%2Fetc%2Fbashrc">Linux环境变量配置方法四：<code>vim /etc/bashrc</code></h4>
<p>该方法是修改系统配置，需要管理员权限（如root）或者对该文件的写入权限：</p>
<pre class="has"><code class="language-go"># 如果/etc/bashrc文件不可编辑，需要修改为可编辑
chmod -v u+w /etc/bashrc

vim /etc/bashrc

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
</code></pre>
<p>注意事项：</p>
<ul><li> <p>生效时间：新开终端生效，或者手动<code>source /etc/bashrc</code>生效</p> </li><li> <p>生效期限：永久有效</p> </li><li> <p>生效范围：对所有用户有效</p> </li></ul>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9Avim%20%2Fetc%2Fprofile">Linux环境变量配置方法五：<code>vim /etc/profile</code></h4>
<p>该方法修改系统配置，需要管理员权限或者对该文件的写入权限，和<code>vim /etc/bashrc</code>类似：</p>
<pre class="has"><code class="language-go"># 如果/etc/profile文件不可编辑，需要修改为可编辑
chmod -v u+w /etc/profile

vim /etc/profile

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
</code></pre>
<p>注意事项：</p>
<ul><li> <p>生效时间：新开终端生效，或者手动<code>source /etc/profile</code>生效</p> </li><li> <p>生效期限：永久有效</p> </li><li> <p>生效范围：对所有用户有效</p> </li></ul>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%85%AD%EF%BC%9Avim%20%2Fetc%2Fenvironment">Linux环境变量配置方法六：<code>vim /etc/environment</code></h4>
<p>该方法是修改系统环境配置文件，需要管理员权限或者对该文件的写入权限：</p>
<pre class="has"><code class="language-go"># 如果/etc/bashrc文件不可编辑，需要修改为可编辑
chmod -v u+w /etc/environment

vim /etc/profile

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
</code></pre>
<p>注意事项：</p>
<ul><li> <p>生效时间：新开终端生效，或者手动<code>source /etc/environment</code>生效</p> </li><li> <p>生效期限：永久有效</p> </li><li> <p>生效范围：对所有用户有效</p> </li></ul>
<h3 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%A0%E8%BD%BD%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90">Linux环境变量加载原理解析</h3>
<p>上面列出了环境变量的各种配置方法，那么Linux是如何加载这些配置的呢？是以什么样的顺序加载的呢？<a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb50220bdc27ab1d6e5d7886405c91ad18a2ecbd1c626d6764ea3cc7a2cae158e36f1ef4d4d6&amp;idx=3&amp;mid=2247509821&amp;scene=21&amp;sn=7528a84b226191eb04f22d1c42dc81a7#wechat_redirect" rel="nofollow" title="Linux 知识大全">Linux 知识大全</a>，这篇推荐看下。关注公众号Java技术栈回复：面试，可以获取我整理的 Java/ Linux 面试题及答案。</p>
<p>特定的加载顺序会导致相同名称的环境变量定义被覆盖或者不生效。</p>
<h4 id="%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E7%9A%84%E5%88%86%E7%B1%BB">环境变量的分类</h4>
<p>环境变量可以简单的分成用户自定义的环境变量以及系统级别的环境变量。</p>
<ul><li> <p>用户级别环境变量定义文件：<code>~/.bashrc</code>、<code>~/.profile</code>（部分系统为：<code>~/.bash_profile</code>）</p> </li><li> <p>系统级别环境变量定义文件：<code>/etc/bashrc</code>、<code>/etc/profile</code>(部分系统为：<code>/etc/bash_profile</code>）、<code>/etc/environment</code></p> </li></ul>
<p>另外在用户环境变量中，系统会首先读取<code>~/.bash_profile</code>（或者<code>~/.profile</code>）文件，如果没有该文件则读取<code>~/.bash_login</code>，根据这些文件中内容再去读取<code>~/.bashrc</code>。</p>
<h4 id="%E6%B5%8B%E8%AF%95Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%A0%E8%BD%BD%E9%A1%BA%E5%BA%8F%E7%9A%84%E6%96%B9%E6%B3%95">测试Linux环境变量加载顺序的方法</h4>
<p>为了测试各个不同文件的环境变量加载顺序，我们在每个环境变量定义文件中的第一行都定义相同的环境变量<code>UU_ORDER</code>，该变量的值为本身的值连接上当前文件名称。</p>
<p>需要修改的文件如下：</p>
<ul><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb5000fcdc2789ea55afe3a9ffe54659e1b6a8cfb3f491ced82140a5c963cc0eb03788a9543f&amp;idx=2&amp;mid=2247517642&amp;scene=21&amp;sn=258dd06dbb03db2ee49fa0ee40394d35#wechat_redirect" rel="nofollow" title="/etc/environment">/etc/environment</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb5000fcdc2789ea55afe3a9ffe54659e1b6a8cfb3f491ced82140a5c963cc0eb03788a9543f&amp;idx=2&amp;mid=2247517642&amp;scene=21&amp;sn=258dd06dbb03db2ee49fa0ee40394d35#wechat_redirect" rel="nofollow" title="/etc/profile">/etc/profile</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb5000fcdc2789ea55afe3a9ffe54659e1b6a8cfb3f491ced82140a5c963cc0eb03788a9543f&amp;idx=2&amp;mid=2247517642&amp;scene=21&amp;sn=258dd06dbb03db2ee49fa0ee40394d35#wechat_redirect" rel="nofollow" title="/etc/profile.d/test.sh，新建文件，没有文件夹可略过">/etc/profile.d/test.sh，新建文件，没有文件夹可略过</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb5000fcdc2789ea55afe3a9ffe54659e1b6a8cfb3f491ced82140a5c963cc0eb03788a9543f&amp;idx=2&amp;mid=2247517642&amp;scene=21&amp;sn=258dd06dbb03db2ee49fa0ee40394d35#wechat_redirect" rel="nofollow" title="/etc/bashrc，或者/etc/bash.bashrc">/etc/bashrc，或者/etc/bash.bashrc</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb5000fcdc2789ea55afe3a9ffe54659e1b6a8cfb3f491ced82140a5c963cc0eb03788a9543f&amp;idx=2&amp;mid=2247517642&amp;scene=21&amp;sn=258dd06dbb03db2ee49fa0ee40394d35#wechat_redirect" rel="nofollow" title="~/.bash_profile，或者~/.profile">~/.bash_profile，或者~/.profile</a></p> </li><li> <p><a href="http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw%3D%3D&amp;chksm=eb5000fcdc2789ea55afe3a9ffe54659e1b6a8cfb3f491ced82140a5c963cc0eb03788a9543f&amp;idx=2&amp;mid=2247517642&amp;scene=21&amp;sn=258dd06dbb03db2ee49fa0ee40394d35#wechat_redirect" rel="nofollow" title="~/.bashrc">~/.bashrc</a></p> </li></ul>
<p>在每个文件中的第一行都加上下面这句代码，并相应的把冒号后的内容修改为当前文件的绝对文件名。</p>
<pre class="has"><code class="language-go">export UU_ORDER="$UU_ORDER:~/.bash_profile"
</code></pre>
<p>修改完之后保存，新开一个窗口，然后<code>echo $UU_ORDER</code>观察变量的值：</p>
<pre class="has"><code class="language-go">uusama@ubuntu:~echoUU_ORDER
$UU_ORDER:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc
</code></pre>
<p>可以推测出Linux加载环境变量的顺序如下：</p>
<ol><li> <p>/etc/environment</p> </li><li> <p>/etc/profile</p> </li><li> <p>/etc/bash.bashrc</p> </li><li> <p>/etc/profile.d/test.sh</p> </li><li> <p>~/.profile</p> </li><li> <p>~/.bashrc</p> </li></ol>
<h4 id="Linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD%E8%AF%A6%E8%A7%A3">Linux环境变量文件加载详解</h4>
<p>由上面的测试可容易得出Linux加载环境变量的顺序如下，：</p>
<p>系统环境变量 -&gt; 用户自定义环境变量 /etc/environment -&gt; /etc/profile -&gt; ~/.profile</p>
<p>打开<code>/etc/profile</code>文件你会发现，该文件的代码中会加载<code>/etc/bash.bashrc</code>文件，然后检查<code>/etc/profile.d/</code>目录下的<code>.sh</code>文件并加载。</p>
<pre class="has"><code class="language-go"># /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "PS1" ]; then
  if [ "BASH" ] &amp;&amp; [ "BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1=' '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r i ]; then
      .i
    fi
  done
  unset i
fi
</code></pre>
<p>其次再打开<code>~/.profile</code>文件，会发现该文件中加载了<code>~/.bashrc</code>文件。</p>
<pre class="has"><code class="language-go"># if running bash
if [ -n "BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "HOME/.bashrc" ]; then
    . "HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin directories
PATH="HOME/bin:HOME/.local/bin:PATH"
</code></pre>
<p>从<code>~/.profile</code>文件中代码不难发现，<code>/.profile</code>文件<strong>只在用户登录的时候读取一次</strong>，而<code>/.bashrc</code>会在每次运行<code>Shell</code>脚本的时候读取一次。</p>
<h4 id="%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%8A%80%E5%B7%A7">一些小技巧</h4>
<p>可以自定义一个环境变量文件，比如在某个项目下定义<code>uusama.profile</code>，在这个文件中使用<code>export</code>定义一系列变量，然后在<code>~/.profile</code>文件后面加上：<code>sourc uusama.profile</code>，这样你每次登陆都可以在Shell脚本中使用自己定义的一系列变量。</p>
<p>也可以使用<code>alias</code>命令定义一些命令的别名，比如<code>alias rm="rm -i"</code>（双引号必须），并把这个代码加入到<code>~/.profile</code>中，这样你每次使用<code>rm</code>命令的时候，都相当于使用<code>rm -i</code>命令，非常方便。</p>
<p style="text-align:left;"></p>
</div>
</div>
</div>
<div id="treeSkill"></div>
<div class="blog-extension-box" id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px"></div>
</article>
<script>
    $(function() {
      setTimeout(function () {
        var mathcodeList = document.querySelectorAll('.htmledit_views img.mathcode');
        if (mathcodeList.length > 0) {
          for (let i = 0; i < mathcodeList.length; i++) {
            if (mathcodeList[i].complete) {
              if (mathcodeList[i].naturalWidth === 0 || mathcodeList[i].naturalHeight === 0) {
                var alt = mathcodeList[i].alt;
                alt = '\\(' + alt + '\\)';
                var curSpan = $('<span class="img-codecogs"></span>');
                curSpan.text(alt);
                $(mathcodeList[i]).before(curSpan);
                $(mathcodeList[i]).remove();
              }
            } else {
              mathcodeList[i].onerror = function() {
                var alt = mathcodeList[i].alt;
                alt = '\\(' + alt + '\\)';
                var curSpan = $('<span class="img-codecogs"></span>');
                curSpan.text(alt);
                $(mathcodeList[i]).before(curSpan);
                $(mathcodeList[i]).remove();
              };
            }
          }
          MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
        }
      }, 500)
    });
  </script>
</div>
        </body>
        </html>
        